// plus => umSdk

import Util from '@/libs/framework/util.js'
import Config from "@/libs/config"

let UmSdk = {
    // 是否完成plus的挂载（再routersCheck中修改状态）
    isReady: false,
    // 获取umSdk的次数
    _umSdkGetNum: 1,

    // 初始化
    init () {
        // 设置环境
        window.env = 'um'

        this._getUmSdk()

        // 挂载plus
        window.plus = this
    },

    // 获取umSdk
    _getUmSdk () {
        var xhr = new XMLHttpRequest()
        xhr.open('GET', 'https://cdn.yuanzhiyijiantong.com/um-sdk@2.2.0/sdk.min.js?v=2.2.4', false)
        xhr.onreadystatechange = () => {
            // readyState == 4说明请求已完成
            if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) {
                // 获取的数据
                // console.log(xhr)
                // console.log(xhr.responseText)

                // 执行方法
                eval(xhr.responseText)
            } else {
                setTimeout(() => {
                    // 没有进入元知sdk
                    if (!umSdk) {
                        this._umSdkGetNum++

                        if (this._umSdkGetNum <= 4) {
                            // 再次获取
                            this._getUmSdk()
                        } else {
                            window.alert('SDK加载失败')
                        }
                    }
                }, 500)
            }
        }
        xhr.send()
    },

    /**
     * 弹出图片预览
     * @param {array} files 图片对象
     * @param {Object} f7PhotoBrowser f7的photoBrowser接受的配置项
     * @param {Object} option 方法接受的配置项
     */
    qmPhotoBrowser (files, f7PhotoBrowser = {}, option = {}) {
        option = Object.assign({}, {
            index: 0 // 打开的下标
        }, option)

        // 查看器的图片数据
        let photos = []

        files.map(item => {
            photos.push(Config.api.downloadPic + '?attachmentId=' + item.attachmentId + '&championsoft=' + encodeURIComponent(Util.$f7.data.authToken))
        })

        umSdk.showPhotos({
            imgs: photos, // 图片地址数组，必填
            index: option.index, // 从第几个开始浏览，必填
            success: function () { },
            fail: function (err) { }
        })
    },

    // 下载附件
    downloadFile (fileName, attachmentId, vm) {
      let url = ""
      if(!fileName || fileName.lastIndexOf(".")===-1){
        Util.$f7.dialog.alert("非法文件名称");
        return;
      }
      let fileType = fileName.substring(fileName.lastIndexOf("."));
        url = `${Config.api.viewOpenFile}/${attachmentId}${fileType}`;
        umSdk.scanFile({
            downloadurl: url, // 文件预览网络地址
            filename: fileName,
            success: function () { },
            fail: function (err) { }
        })
    },

    // 拨号
    dial (mobile) {
        if (!mobile) return

        umSdk.call({
            phone: mobile,
            success: function () { },
            fail: function (err) {
                Util.$f7.dialog.alert("当前设备不支持拨打电话或者无权限");
            }
        })
    },

    /**
     * 打开链接
     * @param {*} plus plus的参数
     * @param {*} um 元知的参数
     *              title: "",   // H5页面的标题
     *              url: toUrl, // H5页面地址
     *              hidden: "0", // 0显示标题 1隐藏标题，默认显示
     *              isHome: false, // 当前页面是否为首页（首页不可返回)，默认值：false
     * @param {*} vm vue实例
     */
    openLink (plus, um) {
        umSdk.openLink({
            title: um.title,   // H5页面的标题
            url: um.url, // H5页面地址
            hidden: um.hidden, // 0显示标题 1隐藏标题，默认显示
            isHome: um.isHome, // 当前页面是否为首页（首页不可返回)，默认值：false
            success: function () { },
            fail: function (err) { }
        })
    }
}

export default UmSdk
